#pragma once    

#include <iostream>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string>

class InetAddr
{
public:
    // 构造函数
    InetAddr(struct sockaddr_in addr)
    {
        _addr = addr; // 获取网络序列地址
        _ip = inet_ntoa(_addr.sin_addr); // 获取IP地址
        _port = ntohs(_addr.sin_port);    // 获取端口号
    }

    //获取IP地址
    std::string getIp() const { return _ip; }

    //获取端口号
    uint16_t getPort() const { return _port; }

    // 析构函数
    ~InetAddr()
    {}

private:
    struct sockaddr_in _addr; // 网络序列
    std::string _ip; // ip地址
    uint16_t _port; // 端口号

};
